package com.youka.bussiness.common.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;

import java.util.List;
import java.util.Map;

/**
 * @Description: Json读取工具类
 * @author: liujinliang
 */
public class JsonUtil {

    /**
     * 将Json转为Map
     *
     * @param json json字符串
     * @return
     */
    public static Map<String, Object> jsonToMap(String json) {
        return JSON.parseObject(json, new TypeReference<Map<String, Object>>() {
        }.getType());
    }

    /**
     * 将Json转为List
     *
     * @param json json字符串
     * @return
     */
    public static List<String> jsonToList(String json) {
        return JSON.parseObject(json, new TypeReference<List<String>>() {
        }.getType());
    }

    /**
     * json转集合
     *
     * @param json
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> List<T> jsonToList(String json, Class<T> clazz) {
        return JSON.parseArray(json, clazz);
    }

    /**
     * 将Json对象反序列化为目标对象
     *
     * @param json
     * @param clazz
     * @return
     */
    public static <T> T jsonToObject(String json, Class<T> clazz) {
        return JSON.parseObject(json, clazz);
    }

    /**
     * 将Object转为Json字符串
     *
     * @param object
     * @return
     */
    public static String objectToJson(Object object) {
        return JSON.toJSONString(object);
    }
}